package br.com.saeng2D.formulario.caixa_apoio;

import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;

import br.com.saeng2D.formulario.caixa.ContainerAnimado;
import br.com.saeng2D.formulario.caixa.ControleAnimado;
import br.com.saeng2D.formulario.caixa.Dialogo;
import br.com.saeng2D.objeto.apoio.AbstratoApoio;

public class ControleContainerAnimadoApoio extends ControleAnimado implements ActionListener {
	private static final long serialVersionUID = 1L;
//	private JTextField textFieldGrau = new JTextField();
//	private JSlider sliderGrau = new JSlider(0, 360);
	private JRadioButton[] radios = new JRadioButton[4]; 
//	private int valorAnteriorSlider;

	public ControleContainerAnimadoApoio(String tituloObjetoAnimado, ContainerAnimado containerAnimado, Dialogo dialogo, int x, int y, int largura, int altura) {
		super(tituloObjetoAnimado, containerAnimado, dialogo);
		montarLayout(x, y, largura, altura);
		registrarEvento();
		setBorder(BorderFactory.createRaisedBevelBorder());
	}

	public void montarLayout(int x, int y, int largura, int altura) {
		setLayout(null);
		setBounds(x, y, largura, altura);

		labelTitulo.setBounds(95, 20, 150, 15);
		add(labelTitulo);

//		containerAnimado.setBounds(50, 20, 100, 100);
		containerAnimado.setBounds(75, 40, 100, 100);
		add(containerAnimado);
//		textFieldGrau.setEditable(false);
//		sliderGrau.setPaintLabels(true);
//		sliderGrau.setMajorTickSpacing(90);
//		textFieldGrau.setBounds(20, altura - 70, largura - 40, 20);
//		sliderGrau.setBounds(10, altura - 35, largura - 20, 30);
//		add(textFieldGrau);
//		add(sliderGrau);
		
		ButtonGroup grupo = new ButtonGroup();
		int rotulo = 0;
		int desloc = 10;
		for(int i=0; i<radios.length; i++) {
			radios[i] = new JRadioButton("" + rotulo);
			rotulo += 90;
			radios[i].setBounds(25+desloc, altura - 35, 45, 30);
			radios[i].setMargin(new Insets(0, 0, 0, 0));
			grupo.add(radios[i]);
			add(radios[i]);
			desloc += 45;
		}
		radios[0].setSelected(true);
	}
	
	public void registrarEvento() {
		for(int i=0; i<radios.length; i++) {
			radios[i].addActionListener(this);
		}
//		sliderGrau.setValue(0);
//		valorAnteriorSlider = sliderGrau.getValue();
//		sliderGrau.addChangeListener(new ChangeListener() {
//			public void stateChanged(ChangeEvent e) {
//				JSlider c = (JSlider) e.getSource();
//				int grau = c.getValue() - valorAnteriorSlider;
//				textFieldGrau.setText("" + c.getValue() + simboloGrau);
//				valorAnteriorSlider = c.getValue();
//				containerAnimado.getAbstratoAnimado().rotacionar(grau);
//				containerAnimado.repaint();
//			}
//		});
	}

	public void actionPerformed(ActionEvent e) {
		JRadioButton radio = (JRadioButton) e.getSource();
		int grau = Integer.parseInt(radio.getText());
		//String s = grau + simboloGrau;
		AbstratoApoio apoio = (AbstratoApoio)containerAnimado.getAbstratoAnimado();  
		//apoio.setStringValorNewton(s);
		//textFieldStringValorNewton.setText(grau + simboloGrau);
		apoio.inicializacao();
		apoio.rotacionar(grau);
		containerAnimado.repaint();
	}

	@Override
	public void registrarEventoVariavelForca() {
		// TODO Auto-generated method stub
	}
}